<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>
    // 定义:  按升序为数组中含有效值的每一项执行一次回调函数。
    
    // 语法:
    //  array.forEach(function(currentValue, index, arr), thisValue)

    // 参数:
    //      function(必须): 数组中每个元素需要调用的函数。

    //      回调函数的参数

    //     1.currentValue(必须),数组当前元素的值
    //     
    //     2.indexOf方法不能识别NaN
    //      
    //     3.arr(可选),数组对象本身


    //      thisValue(可选): 当执行回调函数时this绑定对象的值，默认值为undefined
    // 关于forEach()你要知道：
    //    无法中途退出循环，只能用return退出本次回调，进行下一次回调。
    //    它总是返回 undefined值,即使你return了一个值。  

// 下面类似语法同样适用这些规则


    let a = ['OB', 4, 'Koro1', 1, NaN];
    let b = a.includes(NaN); // true 识别NaN
    console.log(b);
    let c = a.includes('Koro1',100); // false 超过数组长度 不搜索
    console.log(c);
    let d = a.includes('Koro1',-3);  // true 从倒数第三个元素开始搜索 
    console.log(d);
    let e = a.includes('Koro1',-100);  // true 负值绝对值超过数组长度，搜索整个数组
    console.log(e);

    //兼容性(MDN): chrome47, Firefox 43,Edge 14,Opera 34, Safari 9,IE 未实现。



    
</script>
</html>